package tulingxueyuan117;

/**
 * Author: Zhang Dongwei
 * Date: 2022/10/23 14:12
 * 给你单链表的头节点 head ，请你反转链表，并返回反转后的链表。
 */
public class p16_翻转链表_206_re {

    public static void main(String[] args) {
        ListNode listNode = new ListNode(1);
        ListNode listNode1 = new ListNode(2);
        ListNode listNode2 = new ListNode(3);
        ListNode listNode3 = new ListNode(4);
        ListNode listNode4 = new ListNode(5);
        listNode.next = listNode1;
        listNode1.next = listNode2;
        listNode2.next = listNode3;
        listNode3.next = listNode4;

        ListNode res = reverseList(listNode);
        System.out.println(res);
        while (res != null){
            System.out.println(res.val);
            res = res.next;
        }
    }

//    public static ListNode reverseList(ListNode head) {
//        ListNode preNode = null;
//        ListNode curr = head;
//        while (curr!=null){
//            ListNode next = curr.next;
//            curr.next = preNode;
//            preNode = curr;
//            curr = next;
//        }
//        return preNode;
//    }
    public static ListNode reverseList(ListNode head) {
        ListNode pre = null;
        ListNode curr = head;
        while (curr!=null){
            ListNode currnext = curr.next;
            curr.next = pre;
            pre = curr;
            curr = currnext;
        }
        return pre;
    }
}
